小编典典

将左侧边距添加到 UITextField

all

我想将 aUITextField文本的左边距设置为 10 px。最好的方法是什么?


阅读 114

收藏
2022-07-16

共1个答案

小编典典

正如我在之前的评论中解释的那样,在这种情况下,最好的解决方案是扩展UITextField类而不是使用类别,因此您可以在所需的文本字段上显式使用它。

#import <UIKit/UIKit.h>

@interface MYTextField : UITextField

@end


@implementation MYTextField

- (CGRect)textRectForBounds:(CGRect)bounds {
    int margin = 10;
    CGRect inset = CGRectMake(bounds.origin.x + margin, bounds.origin.y, bounds.size.width - margin, bounds.size.height);
    return inset;
}

- (CGRect)editingRectForBounds:(CGRect)bounds {
    int margin = 10;
    CGRect inset = CGRectMake(bounds.origin.x + margin, bounds.origin.y, bounds.size.width - margin, bounds.size.height);
    return inset;
}

@end

类别旨在向现有类添加新功能,而不是覆盖现有方法。

2022-07-16